Industrial controllers are special purpose computers used for controlling industrial processes and manufacturing equipment. Under the direction of a stored program, the industrial controller examines a series of inputs, reflecting the status of the controlled process, and changes a series of outputs controlling the industrial process. The inputs and outputs may be binary, that is on or off, or analog reading or providing a value within a continuous range.
An industrial controller differs from a conventional computer in two respects. First, unlike a computer, an industrial controller is normally customized to the particular process it is controlling both by writing new control software stored in the controller's memory, and by changing the hardware configuration of the controller itself. The ability to re-configure the hardware economically is provided by dividing the industrial controller into a number of functional modules each performing a different function.
Different combinations of modules may be selectively linked together on a backplane or connected together via one or more communication links. The modules may include, for example, processors, power supplies, communication interfaces and input and output interfaces. Each module generally incorporates a microprocessor and related circuitry and operates according to a local stored program.
An industrial controller also differs from a computer in that the various components of an industrial controller may be separated by a considerable distance commensurate with the expanse of a large factory or manufacturing operation. The separated functional modules communicate via digital messages transmitted over the communication links which provide input and output information. Digital messages may be assigned one of several levels of priority, with high priority messages obtaining use of the shared communications media in preference to low priority messages. Normally only a certain percent of the bandwidth, or message carrying capacity of the communication link, is allocated to high priority messages so that a certain rate of transmission of low priority messages will always be ensured even with heavy traffic in high priority messages.
Multiple communication links may be joined by "bridges" or "relays" which serve to translate messages from a first link to the format and according to the protocol of the second link.
Precise coordination of actions between separated functional modules of a large industrial controller may be difficult. One particularly demanding application is the measurement and control of electrical waveforms at spatially separate points, either for motor control or for the characterization of electrical power. Here, control resolution on the order of a few microseconds is necessary. Yet even with high speed communication links, the time required to arbitrate for control of the communication link for transmission of a coordinating message, and the time required to translate a message between the different communication links that may separate the modules, via one or more bridges, may far exceed this desired precision. Further, when it is necessary, at one time to transmit on a communication link multiple commands requiring precise execution, insufficient high priority channel capacity may be available and one message may have to be delayed.